Add disableIntegrationTests option to release workflow#613
Merged
Conversation
Adds a new boolean input to the production release workflow that allows skipping integration and dependency tests while keeping unit tests and install tests. This provides a way to bypass flaky integration test environments while still maintaining basic quality checks before releasing. When disableIntegrationTests is true: - Unit tests still run - Install tests still run - Integration tests are skipped - Dependency tests are skipped - Test project creation/cleanup is skipped This is useful for emergency releases when CI integration tests are experiencing environment-related issues (like the current test data pollution causing failures in test_query_future.py). Co-authored-by: Cursor <cursoragent@cursor.com>
Change pypi job condition from 'always() && !cancelled()' to '!failure() && !cancelled()' to ensure PyPI publishing is blocked when required tests (unit-tests or install-tests) fail. The previous condition was too permissive and would allow publishing even when critical tests failed. The new condition correctly: - ✅ Allows publishing when integration tests are skipped - ✅ Allows publishing when integration tests succeed - ❌ Blocks publishing when any required test fails Co-authored-by: Cursor <cursoragent@cursor.com>
Collaborator
Author
Critical Security Fix AppliedFixed a serious security issue in the initial implementation where the The ProblemThe The SolutionChanged to
Behavior Matrix
Thanks for catching this! |
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes and found 1 potential issue.
Bugbot Autofix is OFF. To automatically fix reported issues with Cloud Agents, enable Autofix in the Cursor dashboard.
Collaborator
Author
|
The test failing in CI passes locally consistently so I do think this is a test pollution / CI environment problem. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Adds a
disableIntegrationTestsboolean input to the production release workflow that allows skipping integration and dependency tests while keeping unit tests and install tests.Motivation
The recent protobuf v6 upgrade (PR #611) is safe and all tests pass locally, but CI integration tests are experiencing environment-related issues with test data pollution in the shared test indexes. This causes false failures in tests like
test_query_future.py::TestQueryAsync::test_query_by_id[False].Investigation showed:
Changes
New Input Parameter
Behavior
When
disableIntegrationTests: false(default):When
disableIntegrationTests: true:Safety: PyPI Job Condition
The PyPI publish job uses
if: ${{ !failure() && !cancelled() }}to ensure:This prevents accidental releases when required tests fail while still allowing bypassing flaky integration tests.
Use Cases
Testing
Related
Security Note
Initial implementation used
always() && !cancelled()which was too permissive. Updated to!failure() && !cancelled()to ensure publishing is blocked when required tests fail.